<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
                 type="text/css"?>
<window title="Test nodelists from chrome"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <script type="application/javascript"
          src="chrome://mochikit/content/MochiKit/packed.js"></script>
  <script type="application/javascript"
          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>

  <!-- test results are displayed in the html:body -->
  <body xmlns="http://www.w3.org/1999/xhtml">
  </body>

  <!-- test code goes here -->
  <script type="application/javascript"><![CDATA[
      SimpleTest.waitForExplicitFinish();

      function go() {
        var win = $('ifr').contentWindow;
        var list = win.document.getElementsByTagName('p');
        is(list.length, 3, "can get the length");
        ok(list[0] instanceof HTMLParagraphElement, "can get list[0]");
        is(list[0], list.item(0), "list.item works");
        is(list.item, list.item, "don't recreate functions for each get");

        var list2 = list[2];
        ok(list[2] instanceof HTMLParagraphElement, "list[2] exists");
        ok("2" in list, "in operator works");

        is(win.document.body.removeChild(win.document.body.lastChild), list2, "remove last paragraph element");
        ok(!("2" in list), "in operator doesn't see phantom element");
        is(list[2], undefined, "no node there!");

        var optionList = win.document.createElement("select").options;
        var option = win.document.createElement("option");
        optionList[0] = option;
        is(optionList.item(0), option, "Creators work");

        option = win.document.createElement("option");
        optionList[0] = option;
        is(optionList.item(0), option, "Setters work");

        SimpleTest.finish();
      }
  ]]></script>

  <iframe id="ifr"
          src="http://mochi.test:8888/tests/js/xpconnect/tests/mochitest/file_nodelists.html"
          onload="go()" />
</window>
